From: Adel Gadllah Date: Mon, 17 Feb 2014 12:34:42 +0000 (+0100) Subject: layout: Protect against broken monitor size reports X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~2761 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=3ba49b0a508f44378c85ab0e577650ed1b32981b;p=gnome-shell.git layout: Protect against broken monitor size reports VNC / XRDP reports nonsensial (i.e 0) monitor dimensions causing us to end up with a dpi of "Infinity" and thus scale even though we shouldn't. https://bugzilla.redhat.com/show_bug.cgi?id=1065788 --- diff --git a/js/ui/layout.js b/js/ui/layout.js index 4a4c94f1d..3f661479e 100644 --- a/js/ui/layout.js +++ b/js/ui/layout.js @@ -491,6 +491,12 @@ const LayoutManager = new Lang.Class({ _updateScaling: function() { let primary = this.monitors[this.primaryIndex]; + let width_mm = global.gdk_screen.get_monitor_width_mm(this.primaryIndex); + let height_mm = global.gdk_screen.get_monitor_height_mm(this.primaryIndex); + if (width_mm == 0 || height_mm == 0) { + St.ThemeContext.get_for_stage(global.stage).scale_factor = 1; + return; + } let dpi_x = primary.width / (global.gdk_screen.get_monitor_width_mm(this.primaryIndex) / 25.4); let dpi_y = primary.height / (global.gdk_screen.get_monitor_height_mm(this.primaryIndex) / 25.4); if (dpi_x > HIGH_DPI_LIMIT && dpi_y > HIGH_DPI_LIMIT)